| Message |
I have some questions here. I need something cleared up here. You said... **** The values for the knock zone seem excessively high at first glance, but all you need to keep in mind is that there is a value of 128 added to the actual timing value. In binary, each byte is represented by a 00000000, or 8 bits of information. When the bit on the far left is a 1, this means a value of 128. When the ECU references the map point and sees this first bit set to 1, it knows it is in the knock zone and to check the detonation subroutine to see if knock is detected. So an ignition timing value of 16 in the knock zone would appear in binary as 10010000, or in numeric as 144 (128+16). If knock is detected, the processor puts a flag in one of its memory registers that knock was indeed detected. The knock sensing subroutine checks this flag to see if it is there. If it is there, its puts another flag into an additional register then it will reduce timing by one degree and then fire the plug. The next time around, if it finds that there is again detonation, AND a flag exists in the secondary register, it will reduce the timing by two points from the stated point in the map and add an additional flag into yet another register. If it continues on like this in detecting knock over and over again, it will reduce the timing by as much as 4 degrees. At this point, if all 4 of the flags are set, it will kick the system into safety boost and it will now be using the low octane maps. This is now in short term code 34, safety mode. This condition can be reset by simply turning off the car and waiting 10 seconds, then restarting. **** Don't mean to question your ability here. As a software engineer & embedded engineer, I need to know. How do you know that the MSB represents? Also, how do you know that it's being stored in a register? Also, why are there only 4 flags being set? I'm not seeing the correlation between the timing degrees and the flags and bits. Maybe I keep reading it wrong. But you say it reduces up to 4 degrees. I don't see how that's possible. Sorry for the stupid questions.
|
 |